package com.zzwtec.interfaces.information.services;

import java.util.List;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.zzwtec.common.constant.AppName;
import com.zzwtec.interfaces.Page;
import com.zzwtec.interfaces.RequestObject;
import com.zzwtec.interfaces.ResultObject;
import com.zzwtec.interfaces.information.dto.AdPositionAdvertiserDTO;

/**
 * @FeignClient需要指向接口实现者的应用名比如(com.zzwtec.information)
 * @author  草原狼
 * 
 * 2017年08月07日
 */
@FeignClient(AppName.ZZWTEC_INFORMATION)
@RequestMapping("AdPositionAdvertiserService")
public interface AdPositionAdvertiserService {

	/**
	 * 添加AdPositionAdvertiser
	 * 
	 * @param bean
	 * @return 
	 */
	@RequestMapping(value = "addAdPositionAdvertiser", method = RequestMethod.POST)
	public ResultObject<String> addAdPositionAdvertiser(@RequestBody RequestObject<AdPositionAdvertiserDTO> request);

	/**
	 * 按id删除AdPositionAdvertiser
	 * 
	 * @param id
	 * @return
	 */
	@RequestMapping(value = "removeAdPositionAdvertiser", method = RequestMethod.POST)
	public ResultObject<Void> removeAdPositionAdvertiser(@RequestBody RequestObject<String> id);

	/**
	 * 按ids删除AdPositionAdvertiser
	 * 
	 * @param request
	 * @return
	 */
	@RequestMapping(value = "removeAdPositionAdvertiserByIds", method = RequestMethod.POST)
	public ResultObject<Void> removeAdPositionAdvertiserByIds(@RequestBody RequestObject<String[]> request);
	
	/**
	 * 修改AdPositionAdvertiser
	 * @param bean
	 * @return
	 */	
	@RequestMapping(value = "modifyAdPositionAdvertiser", method = RequestMethod.POST)
	public ResultObject<Void> modifyAdPositionAdvertiser(@RequestBody RequestObject<AdPositionAdvertiserDTO> request);

	/**
	 * 查询所有AdPositionAdvertiser
	 * 
	 * @return
	 */	
	@RequestMapping(value = "queryAllAdPositionAdvertiser", method = RequestMethod.POST)
	public ResultObject<List<AdPositionAdvertiserDTO>> queryAllAdPositionAdvertiser(@RequestBody RequestObject<Void> request);

	/**
	 * 根据id查询AdPositionAdvertiser
	 * 
	 * @param id
	 * @return
	 */	
	@RequestMapping(value = "queryAdPositionAdvertiserById", method = RequestMethod.POST)
	public ResultObject<AdPositionAdvertiserDTO> queryAdPositionAdvertiserById(@RequestBody RequestObject<String> request);
	
	
	
	/**
     * 获取分页AdPositionAdvertiser数据
     * @param page 分页数据
     * @return 区域分页数据
     */	
	@RequestMapping(value = "queryAdPositionAdvertiserByPage", method = RequestMethod.POST)
	public ResultObject<Page<AdPositionAdvertiserDTO>> queryAdPositionAdvertiserByPage(@RequestBody RequestObject<Page<AdPositionAdvertiserDTO>> request);

	/**
	 * 本地服务实例的信息
	 * @return ServiceInstance
	 */
	@RequestMapping(value = "instance-info", method = RequestMethod.GET)
	public ServiceInstance showServiceInfo();
}
